/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package freya.dao;
import freya.util.*;

import freya.model.Estudante;
import freya.util.HibernateUtil;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**
 *
 * @author Danilo Rodrigues
 */
public class EstudanteDAO implements InterfaceEstudanteDAO {
    
    Log log_estu = new Log();
    private final Session session;
    
    public EstudanteDAO() {  
        this.session = HibernateUtil.getSessionFactory().getCurrentSession();  
    }

    @Override
    public void Insert(Estudante estudante) {
        try
        {
        Transaction tx_estudante = (Transaction) session.beginTransaction();
        session.save(estudante);  
        tx_estudante.commit();
        log_estu.cadastroSucessUser();
        }
        catch(Exception e) {
            e.printStackTrace();
            log_estu.erroUserCad();
        }
    }

    @Override
    public List List() {
        List<Estudante> list = null;
        Transaction tx_estudante = null;
        try
        {
            tx_estudante = (Transaction) session.beginTransaction();
            list = (List<Estudante>)session.createQuery("from Estudante").list();
            for(Estudante estudante : list)
                Hibernate.initialize(estudante.getUsuario());
            
        }
        catch(Exception e) {
            e.printStackTrace();
        }finally{
            tx_estudante.commit();
        }
        return list;
    }
    
}